单一指责原则 Single Responsibility Principle
概述
单一职责原则保证了每个服务和接口对于领域和资源的专注度,可以更好地降低逻辑和实现的复杂度,并且通过粒度更加细致的划分,方便客户端通过组合接口来实现更多的功能。
- 服务级别:每一个服务应该专注于其对应的domain,同时服务接口应该尽可能的做简单的逻辑,通过接口间组合来实现复用。
- 接口级别:每一个接口应该只负责一种资源或者一种类型的信息。
实例
实例:数据展示表的列表视图和筛选器部分。
- 筛选器作为通过数据统计出来的查询条件,需要通过全量查询和摘要来拿到整个的结果
- 列表视图作为数据展示部分,需要分页、懒加载和可配置列展示等操作
所以虽然一个列表页这种简单的视图展示,也因为其展示内容的原因需要分开的API来处理。 通过这样把两个API拆分,每个API都有自己对应的指责,就可以进一步地在其上做增强和优化:
- 筛选器:根据数据的变化频率和数据量做优化和缓存
- 列表视图:数据的分页、预加载和条件筛选
开闭原则 Open-Close Principle
概述
对扩展开放,对修改封闭。
- 服务级别:服务实现应该对接口扩展开放,对破坏约束封闭。
- 接口级别:TBD
实例
里氏替换原则 Liskov Substitution Principle
概述
- 服务级别:服务切换不同的实现,应该保持接口的一致。同时任何被替换实现的接口不应该有行为上的变动。
- 接口级别:TBD
实例
接口隔离原则 Interface Segregation Principle
概述
- 服务级别:服务间应该只通过接口相互依赖,实现之间相互隔离,独立部署。
- 接口级别:TBD
实例
依赖倒置原则 Dependency Inversion Principle
概述
- 服务级别:服务间不应该通过部署实例直接相互依赖,而是通过接口和服务发现机制。
- 接口级别:TBD